package com.lilosoft.business.precity.models;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class DownDataErrorExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DownDataErrorExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andRowguidIsNull() {
            addCriterion("ROWGUID is null");
            return (Criteria) this;
        }

        public Criteria andRowguidIsNotNull() {
            addCriterion("ROWGUID is not null");
            return (Criteria) this;
        }

        public Criteria andRowguidEqualTo(String value) {
            addCriterion("ROWGUID =", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidNotEqualTo(String value) {
            addCriterion("ROWGUID <>", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidGreaterThan(String value) {
            addCriterion("ROWGUID >", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidGreaterThanOrEqualTo(String value) {
            addCriterion("ROWGUID >=", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidLessThan(String value) {
            addCriterion("ROWGUID <", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidLessThanOrEqualTo(String value) {
            addCriterion("ROWGUID <=", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidLike(String value) {
            addCriterion("ROWGUID like", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidNotLike(String value) {
            addCriterion("ROWGUID not like", value, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidIn(List<String> values) {
            addCriterion("ROWGUID in", values, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidNotIn(List<String> values) {
            addCriterion("ROWGUID not in", values, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidBetween(String value1, String value2) {
            addCriterion("ROWGUID between", value1, value2, "rowguid");
            return (Criteria) this;
        }

        public Criteria andRowguidNotBetween(String value1, String value2) {
            addCriterion("ROWGUID not between", value1, value2, "rowguid");
            return (Criteria) this;
        }

        public Criteria andTablenameIsNull() {
            addCriterion("TABLENAME is null");
            return (Criteria) this;
        }

        public Criteria andTablenameIsNotNull() {
            addCriterion("TABLENAME is not null");
            return (Criteria) this;
        }

        public Criteria andTablenameEqualTo(String value) {
            addCriterion("TABLENAME =", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotEqualTo(String value) {
            addCriterion("TABLENAME <>", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameGreaterThan(String value) {
            addCriterion("TABLENAME >", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameGreaterThanOrEqualTo(String value) {
            addCriterion("TABLENAME >=", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLessThan(String value) {
            addCriterion("TABLENAME <", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLessThanOrEqualTo(String value) {
            addCriterion("TABLENAME <=", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameLike(String value) {
            addCriterion("TABLENAME like", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotLike(String value) {
            addCriterion("TABLENAME not like", value, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameIn(List<String> values) {
            addCriterion("TABLENAME in", values, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotIn(List<String> values) {
            addCriterion("TABLENAME not in", values, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameBetween(String value1, String value2) {
            addCriterion("TABLENAME between", value1, value2, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablenameNotBetween(String value1, String value2) {
            addCriterion("TABLENAME not between", value1, value2, "tablename");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameIsNull() {
            addCriterion("TABLESQLNAME is null");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameIsNotNull() {
            addCriterion("TABLESQLNAME is not null");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameEqualTo(String value) {
            addCriterion("TABLESQLNAME =", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameNotEqualTo(String value) {
            addCriterion("TABLESQLNAME <>", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameGreaterThan(String value) {
            addCriterion("TABLESQLNAME >", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameGreaterThanOrEqualTo(String value) {
            addCriterion("TABLESQLNAME >=", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameLessThan(String value) {
            addCriterion("TABLESQLNAME <", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameLessThanOrEqualTo(String value) {
            addCriterion("TABLESQLNAME <=", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameLike(String value) {
            addCriterion("TABLESQLNAME like", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameNotLike(String value) {
            addCriterion("TABLESQLNAME not like", value, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameIn(List<String> values) {
            addCriterion("TABLESQLNAME in", values, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameNotIn(List<String> values) {
            addCriterion("TABLESQLNAME not in", values, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameBetween(String value1, String value2) {
            addCriterion("TABLESQLNAME between", value1, value2, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablesqlnameNotBetween(String value1, String value2) {
            addCriterion("TABLESQLNAME not between", value1, value2, "tablesqlname");
            return (Criteria) this;
        }

        public Criteria andTablerowguidIsNull() {
            addCriterion("TABLEROWGUID is null");
            return (Criteria) this;
        }

        public Criteria andTablerowguidIsNotNull() {
            addCriterion("TABLEROWGUID is not null");
            return (Criteria) this;
        }

        public Criteria andTablerowguidEqualTo(String value) {
            addCriterion("TABLEROWGUID =", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidNotEqualTo(String value) {
            addCriterion("TABLEROWGUID <>", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidGreaterThan(String value) {
            addCriterion("TABLEROWGUID >", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidGreaterThanOrEqualTo(String value) {
            addCriterion("TABLEROWGUID >=", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidLessThan(String value) {
            addCriterion("TABLEROWGUID <", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidLessThanOrEqualTo(String value) {
            addCriterion("TABLEROWGUID <=", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidLike(String value) {
            addCriterion("TABLEROWGUID like", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidNotLike(String value) {
            addCriterion("TABLEROWGUID not like", value, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidIn(List<String> values) {
            addCriterion("TABLEROWGUID in", values, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidNotIn(List<String> values) {
            addCriterion("TABLEROWGUID not in", values, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidBetween(String value1, String value2) {
            addCriterion("TABLEROWGUID between", value1, value2, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablerowguidNotBetween(String value1, String value2) {
            addCriterion("TABLEROWGUID not between", value1, value2, "tablerowguid");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeIsNull() {
            addCriterion("TABLECDTIME is null");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeIsNotNull() {
            addCriterion("TABLECDTIME is not null");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeEqualTo(Date value) {
            addCriterionForJDBCDate("TABLECDTIME =", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("TABLECDTIME <>", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeGreaterThan(Date value) {
            addCriterionForJDBCDate("TABLECDTIME >", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("TABLECDTIME >=", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeLessThan(Date value) {
            addCriterionForJDBCDate("TABLECDTIME <", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("TABLECDTIME <=", value, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeIn(List<Date> values) {
            addCriterionForJDBCDate("TABLECDTIME in", values, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("TABLECDTIME not in", values, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("TABLECDTIME between", value1, value2, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andTablecdtimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("TABLECDTIME not between", value1, value2, "tablecdtime");
            return (Criteria) this;
        }

        public Criteria andDelStateIsNull() {
            addCriterion("DEL_STATE is null");
            return (Criteria) this;
        }

        public Criteria andDelStateIsNotNull() {
            addCriterion("DEL_STATE is not null");
            return (Criteria) this;
        }

        public Criteria andDelStateEqualTo(Long value) {
            addCriterion("DEL_STATE =", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateNotEqualTo(Long value) {
            addCriterion("DEL_STATE <>", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateGreaterThan(Long value) {
            addCriterion("DEL_STATE >", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateGreaterThanOrEqualTo(Long value) {
            addCriterion("DEL_STATE >=", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateLessThan(Long value) {
            addCriterion("DEL_STATE <", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateLessThanOrEqualTo(Long value) {
            addCriterion("DEL_STATE <=", value, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateIn(List<Long> values) {
            addCriterion("DEL_STATE in", values, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateNotIn(List<Long> values) {
            addCriterion("DEL_STATE not in", values, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateBetween(Long value1, Long value2) {
            addCriterion("DEL_STATE between", value1, value2, "delState");
            return (Criteria) this;
        }

        public Criteria andDelStateNotBetween(Long value1, Long value2) {
            addCriterion("DEL_STATE not between", value1, value2, "delState");
            return (Criteria) this;
        }

        public Criteria andSyncSignIsNull() {
            addCriterion("SYNC_SIGN is null");
            return (Criteria) this;
        }

        public Criteria andSyncSignIsNotNull() {
            addCriterion("SYNC_SIGN is not null");
            return (Criteria) this;
        }

        public Criteria andSyncSignEqualTo(Long value) {
            addCriterion("SYNC_SIGN =", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignNotEqualTo(Long value) {
            addCriterion("SYNC_SIGN <>", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignGreaterThan(Long value) {
            addCriterion("SYNC_SIGN >", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignGreaterThanOrEqualTo(Long value) {
            addCriterion("SYNC_SIGN >=", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignLessThan(Long value) {
            addCriterion("SYNC_SIGN <", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignLessThanOrEqualTo(Long value) {
            addCriterion("SYNC_SIGN <=", value, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignIn(List<Long> values) {
            addCriterion("SYNC_SIGN in", values, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignNotIn(List<Long> values) {
            addCriterion("SYNC_SIGN not in", values, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignBetween(Long value1, Long value2) {
            addCriterion("SYNC_SIGN between", value1, value2, "syncSign");
            return (Criteria) this;
        }

        public Criteria andSyncSignNotBetween(Long value1, Long value2) {
            addCriterion("SYNC_SIGN not between", value1, value2, "syncSign");
            return (Criteria) this;
        }

        public Criteria andCdTimeIsNull() {
            addCriterion("CD_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCdTimeIsNotNull() {
            addCriterion("CD_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCdTimeEqualTo(Date value) {
            addCriterionForJDBCDate("CD_TIME =", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("CD_TIME <>", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeGreaterThan(Date value) {
            addCriterionForJDBCDate("CD_TIME >", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CD_TIME >=", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeLessThan(Date value) {
            addCriterionForJDBCDate("CD_TIME <", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CD_TIME <=", value, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeIn(List<Date> values) {
            addCriterionForJDBCDate("CD_TIME in", values, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("CD_TIME not in", values, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CD_TIME between", value1, value2, "cdTime");
            return (Criteria) this;
        }

        public Criteria andCdTimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CD_TIME not between", value1, value2, "cdTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}